package org.fjsei.yewu.entity.fjtj;
import org.fjsei.yewu.jpa.ExtendedJpaRepository;
import org.fjsei.yewu.jpa.NormalExecutor;
import org.fjsei.yewu.repository.StoreSync;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Slice;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.UUID;

@Repository
public interface PipeLineUnitRepository extends ExtendedJpaRepository<PipeLineUnit, UUID>,NormalExecutor<PipeLineUnit, UUID> {
    //这是专门针对着ProjectionRepository.：来实现其未做明确实现的接口的
    <P> Slice<P> readAllBy(Pageable pageable, Class<P> type);
    //【提升性能】添加上主键的排序范围搜索比默认做的findAll(page)更快！Id排序 范围 搜索[分两段] 可依据其他的有索引字段来过滤和拆分分区。
    //【考虑】尽量避免深度翻页，Pageable的offset越大就越慢！所以才需要过滤器和多通道拆分成多个作业！findAll没用where太多了必然会导致深度翻页，性能就差很多。
    <P> Slice<P> findAllByIdBetween(UUID id1,UUID id2,Pageable pageable,Class<P> type);
}
